#pragma once

#include <iostream>
#include <cstdlib>
#include <cassert>

#include <climits>

// alphabeta search boundaries
int const I_ALPHABETA_MAXVAL  = INT_MAX - 1;
int const I_ALPHABETA_MINVAL  = INT_MIN;
int const I_ALPHABETA_ILLEGAL = INT_MAX;

// upper bound
int const I_EVAL_THRESHOLD = 200;

// alphabeta values
int const I_ALPHABETA_RES = -29995;

// a search agent to instantiate. a home for all the tables.
typedef struct
{
	I_TABLE_TRANSPOSITION trans;
	I_TABLE_HISTORY hist;
	
	// static evaluation function, subject to change
	int (*eval_func)(I_CHESS_POSITION*);
}
I_SEARCH_AGENT;
